﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Arquitetura.Common;
using Arquitetura.UI.WebApp.SecretariaServiceReference;

namespace Arquitetura.UI.WebApp
{
    public partial class AlunoManutencao : System.Web.UI.Page
    {
        #region Tipo(s) Interno(s)
        public enum Operacao
        {
            Incluir,
            Alterar
        }
        #endregion

        #region Atributo(s)
        private SecretariaServiceClient m_SecretariaServiceClient = new SecretariaServiceClient();
        #endregion

        #region Constant(es)
        private const string sesOperacaoKey = "AlunoManutencao__sesOperacaoKey";
        #endregion

        #region Propriedade(s)
        public static Operacao? OperacaoCorrente
        {
            set
            {
                if (value == null)
                {
                    HttpContext.Current.Session.Remove(sesOperacaoKey);
                }
                else
                {
                    HttpContext.Current.Session[sesOperacaoKey] = value;
                }
            }
            get
            {
                return HttpContext.Current.Session[sesOperacaoKey] as Operacao?;
            }
        }
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            switch (OperacaoCorrente)
            {
                case Operacao.Incluir:
                    break;

                case Operacao.Alterar:
                    break;

                default:
                    Response.Redirect("~/AlunoListar.aspx");
                    break;
            }
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            Aluno aluno = CarregarEntidade();

            switch (OperacaoCorrente)
            {
                case Operacao.Incluir:
                    {
                        Resultado resultado = m_SecretariaServiceClient.InserirAluno(aluno);
                        if (resultado.Sucesso)
                        {
                            Response.Redirect("~/AlunoListar.aspx");
                        }
                        else
                        {
                            litErros.Text = resultado.ConsolidaResultado("<br />");
                            panErros.Visible = true;
                        }
                    } break;

                case Operacao.Alterar:
                    break;

                default:
                    break;
            }
        }

        private Aluno CarregarEntidade()
        {
            Aluno aluno = new Aluno();
            aluno.Nome = txtNome.Text;
            aluno.Sobrenome = txtSobrenome.Text;
            aluno.CPF = Formata.RemoveFormatoCPF(txtCPF.Text);
            aluno.RG = txtRG.Text;
            aluno.Prontuario = txtProntuario.Text;
            aluno.Mae = new Mae();
            aluno.Mae.Id = 175;
            return aluno;
        }
    }
}